// Mogry
// Generated by Microsoft (R) HLSL Shader Compiler 9.26.952.2844
//
// Parameters:
//
//   float4 DirLightColors;
//   float4 DirLightDirections;
//   float4 FirstLightFlag;
//   sampler2D _sampler_01;
//   sampler2D _sampler_diffuseColor;
//   sampler2D _sampler_shininess;
//   sampler2D _sampler_specularColor;
//   float albedo;
//   float3 ambientColor;
//   float3 ambientLightColor;
//   float backLightEdge;
//   float colorLimit;
//   sampler2D edgeControlFuzzColorMap;
//   float3 envMapColor;
//   float4 externalEdgeControlColor;
//   float4 fogColor;
//   float fresnelEnvMapBias;
//   sampler2D fuzzColorMap;
//   float3 grace00;
//   float3 grace10;
//   float3 grace11;
//   float3 grace1_1;
//   float3 grace20;
//   float3 grace21;
//   float3 grace22;
//   float3 grace2_1;
//   float3 grace2_2;
//   float3 latitudeParam;
//   sampler2D lightToneMap;
//   float4 modulateColor;
//   float normalPower;
//   float3 reflectivityEnvMap;
//   float reverseRatio;
//   float4 rootPos;
//   float3 scatterColor;
//   float4 shadowColor;
//   float4 shadowFadeParam;
//   sampler2D shadowMap;
//   float4 shadowOffset0[4];
//   float4 shadowOffset1[4];
//   float4 shadowProjMatrix0[4];
//   float4 shadowProjMatrix1[4];
//   float4 shadowProjMatrix2[4];
//   float4 shadowProjMatrix3[4];
//   float4 shadowSplitRange;
//   float4 snowDiffuseUVScale;
//   float specluarMaskingShadow;
//   float4 weatherFactorRatio;
//   float4 weatherOffset;
//   sampler2D weatherSnowDiffuseSampler00;
//
//
// Registers:
//
//   Name                        Reg   Size
//   --------------------------- ----- ----
//   shadowOffset0               c21      4
//   shadowOffset1               c25      4
//   shadowProjMatrix0           c29      2
//   shadowProjMatrix1           c31      2
//   shadowProjMatrix2           c33      2
//   shadowProjMatrix3           c35      2
//   ambientLightColor           c37      1
//   FirstLightFlag              c38      1
//   DirLightDirections          c39      1
//   DirLightColors              c40      1
//   backLightEdge               c41      1
//   scatterColor                c42      1
//   reverseRatio                c43      1
//   envMapColor                 c44      1
//   grace00                     c45      1
//   grace1_1                    c46      1
//   grace10                     c47      1
//   grace11                     c48      1
//   grace2_2                    c49      1
//   grace2_1                    c50      1
//   grace20                     c51      1
//   grace21                     c52      1
//   grace22                     c53      1
//   shadowFadeParam             c54      1
//   shadowSplitRange            c55      1
//   shadowColor                 c56      1
//   rootPos                     c57      1
//   latitudeParam               c58      1
//   ambientColor                c59      1
//   specluarMaskingShadow       c60      1
//   normalPower                 c61      1
//   fogColor                    c62      1
//   reflectivityEnvMap          c63      1
//   fresnelEnvMapBias           c64      1
//   colorLimit                  c65      1
//   albedo                      c66      1
//   externalEdgeControlColor    c67      1
//   weatherOffset               c68      1
//   weatherFactorRatio          c69      1
//   snowDiffuseUVScale          c70      1
//   modulateColor               c71      1
//   lightToneMap                s0       1
//   fuzzColorMap                s1       1
//   edgeControlFuzzColorMap     s2       1
//   _sampler_diffuseColor       s3       1
//   _sampler_01                 s4       1
//   shadowMap                   s5       1
//   _sampler_specularColor      s6       1
//   _sampler_shininess          s7       1
//   weatherSnowDiffuseSampler00 s8       1
//
//
// Default values:
//
//   ambientLightColor
//     c37  = { 0, 0, 0, 0 };
//
//   backLightEdge
//     c41  = { -0.8, 0, 0, 0 };
//
//   scatterColor
//     c42  = { 1, 1, 1, 0 };
//
//   reverseRatio
//     c43  = { 1, 0, 0, 0 };
//
//   latitudeParam
//     c58  = { 1, 0, 1, 0 };
//
//   ambientColor
//     c59  = { 0, 0, 0, 0 };
//
//   specluarMaskingShadow
//     c60  = { 0, 0, 0, 0 };
//
//   normalPower
//     c61  = { 1, 0, 0, 0 };
//
//   fogColor
//     c62  = { 1, 1, 1, 0 };
//
//   reflectivityEnvMap
//     c63  = { 0.5, 0.5, 0.5, 0 };
//
//   fresnelEnvMapBias
//     c64  = { 1, 0, 0, 0 };
//
//   colorLimit
//     c65  = { 1, 0, 0, 0 };
//
//   albedo
//     c66  = { 0.5, 0, 0, 0 };
//
//   weatherFactorRatio
//     c69  = { 1, 1, 1, 1 };
//
//   modulateColor
//     c71  = { 1, 1, 1, 1 };
//

    ps_3_0
    def c0, 100, 1, 0.100000001, -2
    def c1, -0.5, 0.25, 9.99999975e-005, 0.5
    def c2, 0.429042995, 0.743125021, 0.886227012, 0.247707993
    def c3, 0.85808599, 1.02332795, -0.600000024, 3.33333325
    def c4, 0.899999976, 1, 0.800000012, 0
    def c5, 0.200000003, 0.300000012, 0.400000006, -0.125
    def c6, 0.298999995, 0.587000012, 0.114, 9.99999997e-007
    def c7, 0.25, 1, -13.2877121, 0.349999994
    dcl_texcoord_pp v0
    dcl_texcoord2 v1.z
    dcl_texcoord1 v2.xyz
    dcl_texcoord3 v3.xyz
    dcl_color_pp v4
    dcl_texcoord4 v5
    dcl_texcoord6_pp v6
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    dcl_2d s8
    mov r0.yz, c0
    add_pp r0.x, r0.z, c55.x
    add r0.x, r0.x, -v1.z
    mul r1, c32, v2.y
    mad r1, v2.x, c30, r1
    mad r1, v2.z, c34, r1
    add r1, r1, c36
    rcp r0.z, r1.w
    mul r1.xy, r1, r0.z
    add r2.xyz, r1, c25
    mul r3, c31, v2.y
    mad r3, v2.x, c29, r3
    mad r3, v2.z, c33, r3
    add r3, r3, c35
    rcp r0.z, r3.w
    mul r3.xy, r3, r0.z
    add r4.xyz, r3, c21
    cmp r0.xzw, r0.x, r4.xyyz, r2.xyyz
    texld r2, r0.xzzw, s5
    add r0.x, -r0.w, r2.x
    cmp_pp r0.x, r0.x, c4.y, c4.w
    add r2.xyz, r1, c26
    add r4.xyz, r3, c22
    add_pp r0.z, c55.x, -v1.z
    add r5.xyz, r0.z, c5
    cmp r2.xyz, r5.x, r4, r2
    texld r4, r2, s5
    add r0.z, -r2.z, r4.x
    cmp_pp r0.z, r0.z, c4.y, c4.w
    add_pp r0.x, r0.x, r0.z
    add r2.xyz, r1, c27
    add r1.xyz, r1, c28
    add r4.xyz, r3, c23
    add r3.xyz, r3, c24
    cmp r1.xyz, r5.z, r3, r1
    cmp r2.xyz, r5.y, r4, r2
    texld r3, r2, s5
    add r0.z, -r2.z, r3.x
    cmp_pp r0.z, r0.z, c4.y, c4.w
    add_pp r0.x, r0.x, r0.z
    texld r2, r1, s5
    add r0.z, -r1.z, r2.x
    cmp_pp r0.z, r0.z, c4.y, c4.w
    add_pp r0.x, r0.x, r0.z
    mul_pp r0.z, r0.x, c1.y
    mad r0.x, r0.x, -c7.x, c7.y
    add_pp r0.w, -c54.x, v1.z
    mul_sat_pp r0.w, r0.w, c54.y
    mad_sat_pp r0.x, r0.w, r0.x, r0.z
    lrp_pp r1.x, c54.w, c54.z, r0.x
    add_pp r0.x, -r1.x, c0.y
    mad_pp r0.x, r0.x, -c56.w, r0.y
    add_pp r0.z, r0.y, -c38.x
    max_pp r1.x, r0.x, r0.z
    texld r2, v5, s7
    add_pp r0.zw, r2.xyxy, c1.x
    mad_pp r1.y, r2.z, c0.x, c0.y
    mad_pp r1.z, r0.z, -r0.z, c1.y
    mad_pp r1.z, r0.w, -r0.w, r1.z
    rsq_pp r1.z, r1.z
    rcp_pp r2.z, r1.z
    mov_pp r1.z, c1.z
    max_pp r2.w, c61.x, r1.z
    mul_pp r2.xy, r0.zwzw, r2.w
    nrm_pp r3.xyz, r2
    mad_pp r2, v4, -c0.w, -c0.y
    nrm_pp r4.xyz, r2
    nrm_pp r2.xyz, v3
    mul_pp r5.xyz, r4.zxyw, r2.yzxw
    mad_pp r5.xyz, r4.yzxw, r2.zxyw, -r5
    mul_pp r4.xyz, r3.y, r4
    mul_pp r5.xyz, r2.w, r5
    mad_pp r3.xyw, r3.x, r5.xyzz, r4.xyzz
    mad_pp r2.xyz, r3.z, r2, r3.xyww
    dp3_pp r0.z, r2, -c39
    mul_sat_pp r0.w, r0.z, c5.w
    mad_pp r0.w, r0.w, c43.x, r0.z
    add_pp r1.z, r0.w, c0.y
    mul_pp r1.w, r1.x, r1.z
    mad r1.z, r1.z, -r1.x, r1.z
    mad_pp r1.z, r1.z, c5.x, r1.w
    add_pp r1.z, r1.z, -c0.y
    mad_pp r1.z, r1.z, c1.w, c1.w
    add_pp r3.x, -r1.z, c0.y
    mov_pp r3.y, c1.w
    texld_pp r3, r3, s0
    mul_sat_pp r1.z, r1.x, r0.w
    mov_sat_pp r0.w, -r0.w
    texld_pp r4, v5, s4
    lrp_pp r5.xyz, r4.y, r3, r1.z
    mul_pp r1.z, r4.y, c0.z
    add_pp r1.w, -r0_abs.z, c0.y
    mov_sat_pp r0.z, r0.z
    mul_pp r0.z, r1.x, r0.z
    max_pp r2.w, r1.w, c4.w
    nrm_pp r3.xyz, v6
    mov_pp r4.xyz, c39
    mad_pp r4.xyz, r3, c41.x, -r4
    dp3_pp r1.w, r4, r3
    mul_sat_pp r1.w, r2.w, r1.w
    mul_pp r4.xyz, r1.w, c42
    mul_pp r4.xyz, r4, c40
    mad_pp r4.xyz, c40, r5, r4
    mul_pp r4.xyz, r1.x, r4
    add_pp r1.w, c3.z, v0.w
    mul_sat_pp r1.w, r1.w, c3.w
    add_pp r1.w, -r1.w, c0.y
    mad_pp r1.w, r1.w, -c4.x, c4.y
    add_pp r2.w, -r1.w, c0.y
    mul_pp r5.xy, c70, v5
    texld_pp r5, r5, s8
    max_pp r3.w, r5.w, c4.z
    mad r2.w, r5.w, r2.w, -r3.w
    mad_pp r1.w, r1.w, r2.w, r3.w
    mul_pp r1.w, r1.w, c68.w
    mul_pp r1.w, r1.w, c69.x
    mul_pp r6.xyz, r5, r1.w
    mov_sat_pp r6.xyz, r6
    texld_pp r7, v5, s3
    mad_pp r5.xyz, r5, r1.w, r7
    mad_pp r5.xyz, r7, -r6, r5
    add r6, -c57.xyzx, v2.xyzx
    dp3 r1.w, r6.yzww, r6.yzww
    rsq r1.w, r1.w
    mul r6, r6, r1.w
    mad r6, r6, c1.w, r2.xyzx
    dp3 r1.w, r6.yzww, r6.yzww
    rsq r1.w, r1.w
    mul_pp r6, r6, r1.w
    mul_pp r7.xyz, r6.yzyw, r6.yzww
    mad_pp r1.w, r6.x, r6.x, -r7.x
    mul_pp r7.xyw, r7.y, c51.xyzz
    mul_pp r7.xyw, r7, c2.y
    mov r8.xzw, c2
    mul_pp r9.xyz, r8.x, c53
    mad_pp r7.xyw, r9.xyzz, r1.w, r7
    mad_pp r7.xyw, c45.xyzz, r8.z, r7
    mad_pp r7.xyw, c51.xyzz, -r8.w, r7
    mul_pp r8.xy, r6.z, r6.ywzw
    mul_pp r8.yzw, r8.y, c52.xxyz
    mad_pp r8.yzw, c49.xxyz, r7.z, r8
    mad_pp r8.xyz, c50, r8.x, r8.yzww
    mad_pp r7.xyz, r8, c3.x, r7.xyww
    mul_pp r8.xyz, r6.y, c46
    mad_pp r6.xyw, c48.xyzz, r6.w, r8.xyzz
    mad_pp r6.xyz, c47, r6.z, r6.xyww
    mad_pp r6.xyz, r6, c3.y, r7
    mul_pp r6.xyz, r6, c66.x
    mul_pp r6.xyz, r6, c44
    add_pp r6.xyz, r6, r6
    dp3_pp r1.w, -r3, r2
    abs_sat_pp r2.w, r1.w
    mad_pp r7.x, r1.w, c1.x, c1.w
    add r1.w, -r2.w, c0.y
    mul r2.w, r1.w, r1.w
    mul r2.w, r2.w, r2.w
    mul_pp r1.w, r1.w, r2.w
    lrp_sat_pp r2.w, r1.w, r0.y, c64.x
    mul_pp r8.xyz, r2.w, c63
    mad_sat_pp r5.xyz, r8, r6, r5
    mul_pp r5.xyz, r5, r5
    mov_sat_pp r8.xyz, c59
    mad_pp r6.xyz, r8, r8, r6
    mov_sat_pp r8.xyz, c37
    mad_pp r6.xyz, r8, r8, r6
    mul_pp r6.xyz, r5, r6
    mov_pp r8.xyz, c40
    dp3_pp r1.w, r8, c6
    mul_pp r0.w, r0.w, r1.w
    dp2add_pp r0.z, r0.z, r1.w, c4.w
    mul_pp r0.w, r0.w, c43.x
    mad_sat_pp r0.w, r0.w, -c7.w, c7.y
    mul_pp r6.xyz, r6, r0.w
    mad_pp r4.xyz, r4, r5, r6
    max_pp r5.xyz, r4, c6.w
    rsq_pp r0.w, r5.x
    rcp_pp r4.x, r0.w
    rsq_pp r0.w, r5.y
    rsq_pp r1.w, r5.z
    rcp_pp r4.z, r1.w
    rcp_pp r4.y, r0.w
    dp3_pp r0.w, r3, r2
    add_pp r0.w, r0.w, r0.w
    mad_pp r2.xyz, r2, -r0.w, r3
    dp3_sat_pp r0.w, r2, -c39
    add r1.w, r0.w, -c1.z
    log_pp r0.w, r0.w
    cmp_pp r0.w, r1.w, r0.w, c7.z
    mul_pp r0.w, r1.y, r0.w
    exp_pp r0.w, r0.w
    mul_pp r2.xyz, r0.w, c40
    mul_pp r1.xyw, r1.x, r2.xyzz
    texld_pp r2, v5, s6
    mov_sat_pp r2.xyz, r2
    mul_pp r2.xyz, r2, r2
    mul_pp r1.xyw, r1, r2.xyzz
    lrp_sat_pp r2.x, r0.x, r0.y, c60.x
    mul_pp r0.xyw, r1, r2.x
    max_pp r1.xyw, r0, c6.w
    rsq_pp r0.x, r1.x
    rcp_pp r2.x, r0.x
    rsq_pp r0.x, r1.y
    rsq_pp r0.y, r1.w
    rcp_pp r2.z, r0.y
    rcp_pp r2.y, r0.x
    mul_pp r0.xyw, r2.xyzz, v0.xyzz
    mad_pp r0.xyw, v0.xyzz, r4.xyzz, r0
    mov r2.xyz, c6
    dp3_pp r1.x, c37, r2
    add_pp r0.z, r0.z, r1.x
    mov_pp r7.y, c1.w
    texld_pp r2, r7, s1
    texld_pp r3, r7, s2
    mov_sat_pp r3.xyz, r3
    mul_pp r1.xyw, r3.xyzz, v0.xyzz
    mov_sat_pp r2.xyz, r2
    mul_pp r2.xyz, r2, v0
    mul_pp r2.xyz, r1.z, r2
    mad_pp r0.xyz, r2, r0.z, r0.xyww
    mad_pp r0.xyz, r1.xyww, c67, r0
    min_pp r1.xyz, c65.x, r0
    min_sat_pp r0.x, c62.w, v6.w
    lrp_pp r2.xyz, r0.x, c62, r1
    texld_pp r0, v5.zwzw, s4
    mov_pp r2.w, r0.x
    mul_pp r0, r2, c71
    mad_pp r0.xyz, r0, c58.x, c58.y
    mov_pp oC0.w, r0.w
    mul_pp oC0.xyz, r0, c58.z

	mov oC0.xyzw, c4.wwww	
// approximately 238 instruction slots used (13 texture, 225 arithmetic)
 